#include "../headers/ihm.h"
#include "../headers/main.h"


char demanderValeur() {
    char choix;
    
    printf("Liste des valeurs des cartes : \n");
    printf("---------------------------------------------------------------\n");
    printf("AS\t%c\tROI\t%c\tDAME\t%c\tVALET\t%c\n",MENU_AS,MENU_ROI,MENU_DAME,MENU_VALET);
    printf("DIX\t%c\tNEUF\t%c\tHUIT\t%c\tSEPT\t%c\n",MENU_DIX,MENU_NEUF,MENU_HUIT,MENU_SEPT);
    printf("SIX\t%c\tCINQ\t%c\tQUATRE\t%c\tTROIS\t%c\n",MENU_SIX,MENU_CINQ,MENU_QUATRE,MENU_TROIS);
    printf("DEUX\t%c\n",MENU_DEUX);
    printf("---------------------------------------------------------------\n");

    do {
        printf("Choisissez une valeur pour cette carte : ");    
        scanf ("%c", &choix);
        getchar(); //A mettre pour vider le buffer
    } while (
        (choix != MENU_AS)
        && (choix != MENU_ROI)
        && (choix != MENU_DAME)
        && (choix != MENU_VALET)
        && (choix != MENU_DIX) 
        && (choix != MENU_NEUF)
        && (choix != MENU_HUIT)
        && (choix != MENU_SEPT)
        && (choix != MENU_SIX)
        && (choix != MENU_CINQ)
        && (choix != MENU_QUATRE)
        && (choix != MENU_TROIS)
        && (choix != MENU_DEUX)
    );
    
    printf("\n\n");
    return choix;
}

char demanderCouleur() {
    char choix;
    
    printf("Liste des couleurs : \n");
    printf("---------------------------------------------------------------\n");
    printf("Coeur\t%c\t\tCarreau\t%c\n",MENU_COEUR,MENU_CARREAU);
    printf("Pique\t%c\t\tTrefle\t%c\n",MENU_PIQUE,MENU_TREFLE);
    printf("---------------------------------------------------------------\n");

    do {
        printf("Choisissez une couleur pour cette carte : ");    
        scanf ("%c", &choix);
        getchar(); //A mettre pour vider le buffer
    } while ((choix != MENU_COEUR) && (choix != MENU_CARREAU) && (choix != MENU_PIQUE) && (choix != MENU_TREFLE));
    
    printf("\n\n");
    return choix;
}

char* demanderCartes(unsigned char nb_de_cartes) {
    char* jeu = malloc((nb_de_cartes+1) * sizeof(char));
    *(jeu+nb_de_cartes) = '\0';
    unsigned char i;
    char valeur;
    char couleur;
    
    for (i=0;i<nb_de_cartes;i++) {
        printf("Choisissez la carte numero %i\n",(i+1));
        valeur = menuToVal(demanderValeur());
        couleur = menuToCouleur(demanderCouleur());
        *(jeu+i) = valeur|couleur;
    }
    
    return jeu;
}

void afficherProba(int etape,double proba) {
    printf("La probabilite de gagner avec\nEn main : %s de %s et %s de %s\n",
            getNomValeur(ma_carte1),getNomCouleur(ma_carte1),
            getNomValeur(ma_carte2),getNomCouleur(ma_carte2));

    if (etape >= FLOP) {
         printf("Au flop %s de %s, %s de %s et %s de %s\n",
            getNomValeur(board_carte1),getNomCouleur(board_carte1),
            getNomValeur(board_carte2),getNomCouleur(board_carte2),
            getNomValeur(board_carte3),getNomCouleur(board_carte3));
    }
    if (etape >= TURN) {
        printf("Au turn %s de %s\n",
            getNomValeur(board_carte4),getNomCouleur(board_carte4));      
    }
    if (etape == RIVER) {
        printf("A la river %s de %s\n",
            getNomValeur(board_carte4),getNomCouleur(board_carte4));  
    }
    
    printf("Est de : %lf\n",proba);
}